11111

COURSE INTRODUCTION AND APPLICATION INFORMATION


se.cs.ieu.edu.tr

Course Name
Code
Semester
Theory
(hour/week)
Application/Lab
(hour/week)
Local Credits
ECTS
Fall/Spring
Prerequisites
None
Course Language
Course Type
Elective
Course Level
-
Mode of Delivery -
Teaching Methods and Techniques of the Course
Course Coordinator -
Course Lecturer(s) -
Assistant(s) -
Course Objectives
Learning Outcomes The students who succeeded in this course;
  • Students will be able to know how to use the advanced templates in C through class templates, traits classes and policy classes
  • Students will be able to know the concept of generic programming
  • Students will be able to create library software
  • Students will be able to know how to use a GUI Programming Framework
  • Students will be able to know how to use the Standard Template Library
  • Students will be able to know how to use the Boost C Libraries
Course Description

 



Course Category

Core Courses
Major Area Courses
X
Supportive Courses
Media and Managment Skills Courses
Transferable Skill Courses

 

WEEKLY SUBJECTS AND RELATED PREPARATION STUDIES

Week Subjects Required Materials
1 Introduction and motivation. Overview of Object Oriented Programming in C++ Inheritance, Polymorphism, Abstraction, Encapsulation, Data Hiding, Exception handling
2 Basic template overview. Function and class templates. David Vandevoorde and Nicolai M. Josuttis. C++ Templates: The Complete Guide. Addison Wesley, 2003. (Course book) Chapter 2, Chapter 3
3 Nontype template parameters, tricky basics Course book Chapter 4, Chapter 5
4 Using templates in practice Course book Chapter 6
5 The polymorphic power of templates Course book Chapter 14
6 Traits and policy classes Course book Chapter 15
7 Templates and inheritance Course book Chapter 16
8 GUI programming with QT 4.6 Framework C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) Prentice Hall, 2008
9 Introduction to Standard Template Library Josuttis, Nicolai M. The C++ standard library: a tutorial and reference. Addison Wesley, 1999 (STL Book) Chapter 2
10 Associative Containers: Map, Multimap, Set, and Multiset. STL Book Chapter 6
11 STL iterators STL Book Chapter 7
12 STL algorithms STL Book Chapter 8
13 Boost Smart Pointers Boost C++ libraries website
14 Other Selected Boost C++ Libraries Boost C++ libraries website
15 Project Presentations
16 Review of the Semester  
Course Notes/Textbooks David Vandevoorde and Nicolai M. Josuttis. C++ Templates: The Complete Guide. Addison Wesley, 2003. Instructor notes and lecture slides.
Suggested Readings/Materials C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) Prentice Hall, 2008 Josuttis, Nicolai M. The C++ standard library: a tutorial and reference. Addison Wesley, 1999Boost C++ libraries website

 

EVALUATION SYSTEM

Semester Activities Number Weigthing
Participation
1
10
Laboratory / Application
Field Work
Quizzes / Studio Critiques
Portfolio
Homework / Assignments
Presentation / Jury
Project
1
30
Seminar / Workshop
Oral Exam
Midterm
1
20
Final Exam
1
40
Total

Weighting of Semester Activities on the Final Grade
60
Weighting of End-of-Semester Activities on the Final Grade
40
Total

ECTS / WORKLOAD TABLE

Semester Activities Number Duration (Hours) Workload
Course Hours
(Including exam week: 16 x total hours)
16
3
48
Laboratory / Application Hours
(Including exam week: 16 x total hours)
16
Study Hours Out of Class
15
2
Field Work
Quizzes / Studio Critiques
Portfolio
Homework / Assignments
Presentation / Jury
Project
1
15
Seminar / Workshop
Oral Exam
Midterms
1
7
Final Exams
1
20
    Total
120

 

COURSE LEARNING OUTCOMES AND PROGRAM QUALIFICATIONS RELATIONSHIP

#
Program Competencies/Outcomes
* Contribution Level
1
2
3
4
5
1 Be able to define problems in real life by identifying functional and nonfunctional requirements that the software is to execute X
2 Be able to design and analyze software at component, subsystem, and software architecture level X
3 Be able to develop software by coding, verifying, doing unit testing and debugging X
4 Be able to verify software by testing its behaviour, execution conditions, and expected results X
5 Be able to maintain software due to working environment changes, new user demands and the emergence of software errors that occur during operation X
6 Be able to monitor and control changes in the software, the integration of software with other software systems, and plan to release software versions systematically X
7 To have knowledge in the area of software requirements understanding, process planning, output specification, resource planning, risk management and quality planning
X
8 Be able to identify, evaluate, measure and manage changes in software development by applying software engineering processes X
9 Be able to use various tools and methods to do the software requirements, design, development, testing and maintenance X
10 To have knowledge of basic quality metrics, software life cycle processes, software quality, quality model characteristics, and be able to use them to develop, verify and test software X
11 To have knowledge in other disciplines that have common boundaries with software engineering such as computer engineering, management, mathematics, project management, quality management, software ergonomics and systems engineering X
12 Be able to grasp software engineering culture and concept of ethics, and have the basic information of applying them in the software engineering X
13

Be able to use a foreign language to follow related field publications and communicate with colleagues

X

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest

 

İzmir Ekonomi Üniversitesi | Sakarya Caddesi No:156, 35330 Balçova - İZMİR Tel: +90 232 279 25 25 | webmaster@ieu.edu.tr | YBS 2010